package com.winchain.chainbill.bill.biz.report.dao;

import com.winchain.chainbill.bill.biz.report.vo.BizBoardQueryVo;
import com.winchain.chainbill.bill.biz.report.vo.BizBoardStatsVo;
import com.winchain.chainbill.bill.biz.send.vo.BillSnd;
import java.math.BigDecimal;
import java.util.List;
import org.apache.ibatis.annotations.Param;

public abstract interface BizBoardDao {
	public abstract int countCustomerByGrpId(@Param("grpId") String paramString1,
			@Param("cusState") String paramString2, @Param("cusTypes") String... paramVarArgs);

	public abstract List<BizBoardStatsVo> selectCustomersForBoard(@Param("grpId") String paramString1,
			@Param("startDate") String paramString2, @Param("endDate") String paramString3,
			@Param("tagCodes") String... paramVarArgs);

	public abstract List<BizBoardQueryVo> selectCustomersForDisBoard(@Param("grpId") String paramString);

	public abstract BigDecimal countSendAmts(@Param("grpId") String paramString1,
			@Param("billState") String paramString2);

	public abstract List<BizBoardQueryVo> selectBillSndsByGroupId(@Param("grpId") String paramString1,
			@Param("billState") String paramString2);

	public abstract List<BillSnd> selectNotGrouByBillSndsByGroupId(@Param("grpId") String paramString1,
			@Param("billState") String paramString2);

	public abstract BigDecimal countTransferAmts(@Param("grpId") String paramString1,
			@Param("billState") String paramString2, @Param("xfeStates") String... paramVarArgs);

	public abstract List<BizBoardQueryVo> selectBillXfesByGroupId(@Param("grpId") String paramString1,
			@Param("billState") String paramString2, @Param("xfeStates") String... paramVarArgs);

	public abstract Integer countSplitXfeBillByGroupId(@Param("grpId") String paramString);

	public abstract Integer countFullXfeBillByGroupId(@Param("grpId") String paramString);

	public abstract BigDecimal countDctAmts(@Param("grpId") String paramString,
			@Param("dctStates") String... paramVarArgs);

	public abstract List<BizBoardQueryVo> selectDctsForDisBoard(@Param("grpId") String paramString,
			@Param("dctStates") String... paramVarArgs);

	public abstract List<BizBoardStatsVo> querySendBillsForBoard(@Param("grpId") String paramString1,
			@Param("startDate") String paramString2, @Param("endDate") String paramString3,
			@Param("buyerIds") String... paramVarArgs);

	public abstract List<BizBoardStatsVo> queryXfeBillsForBoard(@Param("grpId") String paramString1,
			@Param("startDate") String paramString2, @Param("endDate") String paramString3,
			@Param("buyerIds") String... paramVarArgs);

	public abstract List<BizBoardStatsVo> queryDctBillsForBoard(@Param("grpId") String paramString1,
			@Param("startDate") String paramString2, @Param("endDate") String paramString3,
			@Param("sellerIds") String... paramVarArgs);

	public abstract List<BizBoardStatsVo> queryRpurBillsForBoard(@Param("grpId") String paramString1,
			@Param("startDate") String paramString2, @Param("endDate") String paramString3);
}
